using System;
using System.Collections.Generic;
using System.Text;

using NHibernate;
using Zwms.Data.Base;
using System.Runtime.Serialization;

namespace Zwms.Data.BusinessObjects
{
    [DataContract]
    public partial class StoGoodsStock : BusinessBase<string>
    {
        #region Declarations
        private string _pOCode = String.Empty;
        private string _iBPlanCode = String.Empty;
        private string _iBCode = String.Empty;
        private string _iBDate = String.Empty;
        private string _iBTime = String.Empty;
        private string _warehouseCode = String.Empty;
        private string _warehouseName = String.Empty;
        private string _areaCode = String.Empty;
        private string _areaName = String.Empty;
        private string _shelfCode = String.Empty;
        private string _shelfName = String.Empty;
        private string _locationCode = String.Empty;
        private string _locationName = String.Empty;
        private string _goodsUnit = String.Empty;
        private string _goodsCode = String.Empty;
        private string _goodsBarCode = String.Empty;
        private string _singleGoodsCode = String.Empty;
        private string _goodsName = String.Empty;
        private string _categoryCode = String.Empty;
        private string _categoryName = String.Empty;
        private string _productionDate = String.Empty;
        private int _goodsSpec = default(Int32);
        private decimal _costPrice = default(Decimal);
        private decimal _retailPrice = default(Decimal);
        private int _packageQty = default(Int32);
        private int _pieceQty = default(Int32);
        private int _goodsTotalQty = default(Int32);
        private string _taxType = String.Empty;
        private string _goodsStatus = String.Empty;
        private string _processStatus = String.Empty;
        private decimal _length = default(Decimal);
        private decimal _width = default(Decimal);
        private decimal _height = default(Decimal);
        private decimal _volume = default(Decimal);
        private decimal _weight = default(Decimal);
        private string _remark = String.Empty;



        #endregion

        #region Constructors

        public StoGoodsStock() { }

        #endregion

        #region Methods

        public override int GetHashCode()
        {
            System.Text.StringBuilder sb = new System.Text.StringBuilder();

            sb.Append(this.GetType().FullName);
            sb.Append(_pOCode);
            sb.Append(_iBPlanCode);
            sb.Append(_iBCode);
            sb.Append(_iBDate);
            sb.Append(_iBTime);
            sb.Append(_warehouseCode);
            sb.Append(_warehouseName);
            sb.Append(_areaCode);
            sb.Append(_areaName);
            sb.Append(_shelfCode);
            sb.Append(_shelfName);
            sb.Append(_locationCode);
            sb.Append(_locationName);
            sb.Append(_goodsUnit);
            sb.Append(_goodsCode);
            sb.Append(_goodsBarCode);
            sb.Append(_singleGoodsCode);
            sb.Append(_goodsName);
            sb.Append(_categoryCode);
            sb.Append(_categoryName);
            sb.Append(_productionDate);
            sb.Append(_goodsSpec);
            sb.Append(_costPrice);
            sb.Append(_retailPrice);
            sb.Append(_packageQty);
            sb.Append(_pieceQty);
            sb.Append(_goodsTotalQty);
            sb.Append(_taxType);
            sb.Append(_goodsStatus);
            sb.Append(_processStatus);
            sb.Append(_length);
            sb.Append(_width);
            sb.Append(_height);
            sb.Append(_volume);
            sb.Append(_weight);
            sb.Append(_remark);

            return sb.ToString().GetHashCode();
        }

        #endregion

        #region Properties

        [DataMember]
        public virtual string POCode
        {
            get { return _pOCode.TrimEnd(); }
            set
            {
                _pOCode = value;
            }
        }

        [DataMember]
        public virtual string IBPlanCode
        {
            get { return _iBPlanCode.TrimEnd(); }
            set
            {
                _iBPlanCode = value;
            }
        }

        [DataMember]
        public virtual string IBCode
        {
            get { return _iBCode.TrimEnd(); }
            set
            {
                _iBCode = value;
            }
        }

        [DataMember]
        public virtual string IBDate
        {
            get { return _iBDate.TrimEnd(); }
            set
            {
                _iBDate = value;
            }
        }

        [DataMember]
        public virtual string IBTime
        {
            get { return _iBTime.TrimEnd(); }
            set
            {
                _iBTime = value;
            }
        }

        [DataMember]
        public virtual string WarehouseCode
        {
            get { return _warehouseCode.TrimEnd(); }
            set
            {
                _warehouseCode = value;
            }
        }

        [DataMember]
        public virtual string WarehouseName
        {
            get { return _warehouseName.TrimEnd(); }
            set
            {
                _warehouseName = value;
            }
        }

        [DataMember]
        public virtual string AreaCode
        {
            get { return _areaCode.TrimEnd(); }
            set
            {
                _areaCode = value;
            }
        }

        [DataMember]
        public virtual string AreaName
        {
            get { return _areaName.TrimEnd(); }
            set
            {
                _areaName = value;
            }
        }

        [DataMember]
        public virtual string ShelfCode
        {
            get { return _shelfCode.TrimEnd(); }
            set
            {
                _shelfCode = value;
            }
        }

        [DataMember]
        public virtual string ShelfName
        {
            get { return _shelfName.TrimEnd(); }
            set
            {
                _shelfName = value;
            }
        }

        [DataMember]
        public virtual string LocationCode
        {
            get { return _locationCode.TrimEnd(); }
            set
            {
                _locationCode = value;
            }
        }

        [DataMember]
        public virtual string LocationName
        {
            get { return _locationName.TrimEnd(); }
            set
            {
                _locationName = value;
            }
        }

        [DataMember]
        public virtual string GoodsUnit
        {
            get { return _goodsUnit.TrimEnd(); }
            set
            {
                _goodsUnit = value;
            }
        }

        [DataMember]
        public virtual string GoodsCode
        {
            get { return _goodsCode.TrimEnd(); }
            set
            {
                _goodsCode = value;
            }
        }

        [DataMember]
        public virtual string GoodsBarCode
        {
            get { return _goodsBarCode.TrimEnd(); }
            set
            {
                _goodsBarCode = value;
            }
        }

        [DataMember]
        public virtual string SingleGoodsCode
        {
            get { return _singleGoodsCode.TrimEnd(); }
            set
            {
                _singleGoodsCode = value;
            }
        }

        [DataMember]
        public virtual string GoodsName
        {
            get { return _goodsName.TrimEnd(); }
            set
            {
                _goodsName = value;
            }
        }

        [DataMember]
        public virtual string CategoryCode
        {
            get { return _categoryCode.TrimEnd(); }
            set
            {
                _categoryCode = value;
            }
        }

        [DataMember]
        public virtual string CategoryName
        {
            get { return _categoryName.TrimEnd(); }
            set
            {
                _categoryName = value;
            }
        }

        [DataMember]
        public virtual string ProductionDate
        {
            get { return _productionDate.TrimEnd(); }
            set
            {
                _productionDate = value;
            }
        }

        [DataMember]
        public virtual int GoodsSpec
        {
            get { return _goodsSpec; }
            set
            {
                _goodsSpec = value;
            }
        }

        [DataMember]
        public virtual decimal CostPrice
        {
            get { return _costPrice; }
            set
            {
                _costPrice = value;
            }
        }

        [DataMember]
        public virtual decimal RetailPrice
        {
            get { return _retailPrice; }
            set
            {
                _retailPrice = value;
            }
        }

        [DataMember]
        public virtual int PackageQty
        {
            get { return _packageQty; }
            set
            {
                _packageQty = value;
            }
        }

        [DataMember]
        public virtual int PieceQty
        {
            get { return _pieceQty; }
            set
            {
                _pieceQty = value;
            }
        }

        [DataMember]
        public virtual int GoodsTotalQty
        {
            get { return _goodsTotalQty; }
            set
            {
                _goodsTotalQty = value;
            }
        }

        [DataMember]
        public virtual string TaxType
        {
            get { return _taxType.TrimEnd(); }
            set
            {
                _taxType = value;
            }
        }

        [DataMember]
        public virtual string GoodsStatus
        {
            get { return _goodsStatus.TrimEnd(); }
            set
            {
                _goodsStatus = value;
            }
        }

        [DataMember]
        public virtual string ProcessStatus
        {
            get { return _processStatus.TrimEnd(); }
            set
            {
                _processStatus = value;
            }
        }

        [DataMember]
        public virtual decimal Length
        {
            get { return _length; }
            set
            {
                _length = value;
            }
        }

        [DataMember]
        public virtual decimal Width
        {
            get { return _width; }
            set
            {
                _width = value;
            }
        }

        [DataMember]
        public virtual decimal Height
        {
            get { return _height; }
            set
            {
                _height = value;
            }
        }

        [DataMember]
        public virtual decimal Volume
        {
            get { return _volume; }
            set
            {
                _volume = value;
            }
        }

        [DataMember]
        public virtual decimal Weight
        {
            get { return _weight; }
            set
            {
                _weight = value;
            }
        }

        [DataMember]
        public virtual string Remark
        {
            get { return _remark.TrimEnd(); }
            set
            {
                _remark = value;
            }
        }
        #endregion
    }
}